package com.jlnx.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.jlnx.pojo.ChainEnterprise;
import com.jlnx.pojo.CoreEnterprise;
import com.jlnx.pojo.Enterprise;
import com.jlnx.pojo.FinanceReq;
import com.jlnx.pojo.PayStatus;
import com.jlnx.util.DBUtils;

public class PayStatusDaoImpl {

	//插入融资申请信息
	public int insertPayStatus(PayStatus payStatus) {
		//定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="insert into paystatus values(?,?,?,?,?,?,?)";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//给占位符赋值
			pstm.setInt(1, payStatus.getReqId());
			pstm.setString(2, payStatus.getReqName());
			pstm.setString(3, payStatus.getEntNo());
			pstm.setString(4, payStatus.getName());
			pstm.setDate(5, DBUtils.changeDate(payStatus.getPayDate()));
			pstm.setDate(6, DBUtils.changeDate(payStatus.getReturnDate()));	
			pstm.setInt(7, payStatus.getOverDay());
			//执行SQL语句，并返回结果
			int i = pstm.executeUpdate();
			return i;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			//关闭连接，释放结果（正序创建，逆序销毁）
			try {
				pstm.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	
		return -1;
	}
	
	//查询某企业是否存在逾期未还的融资
	public int isOverdueFinanceExist(String entNo) {
		//定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		ResultSet rs = null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="select * from paystatus where entNo = ? and returnDate < CURDATE()";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//给占位符赋值
			pstm.setString(1, entNo);
			//执行SQL语句，并返回结果
			rs = pstm.executeQuery();
			int i = 0;
			while(rs.next()) {
               i++;
			}
			return i;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			//关闭连接，释放结果（正序创建，逆序销毁）
			try {
				pstm.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	
		return -1;
	}
	
	     /**
		 *单查询:由登录账号获取所有融资申请信息
		 */
		public List<PayStatus> selectByEntNo(String entNo) {
			
	        //定义相关对象
			Connection conn = null;
			PreparedStatement pstm=null;
			ResultSet rs = null;
			//链接数据库
			conn = DBUtils.getConnection();
			//编写SQL语句
			String sql="select * from paystatus where entNo = ?";
			//获得执行SQL语句对象
			try {
				pstm=conn.prepareStatement(sql);
				//给占位符赋值
				pstm.setString(1, entNo);
				//执行SQL语句，并返回结果
				rs=pstm.executeQuery();
				List<PayStatus> lf = new ArrayList<PayStatus>();
				while(rs.next()) {
					PayStatus payStatus = new PayStatus(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getDate(5), rs.getDate(6), rs.getInt(7));
					lf.add(payStatus);
				}
				return lf;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally {
				//关闭连接，释放结果（正序创建，逆序销毁）
				try {
					rs.close();
					pstm.close();
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			return null;
			
		}
		
	    //根据融资ID删除融资请求
	    public int deletePayStatusByReqId(int reqId) {
			//定义相关对象
			Connection conn = null;
			PreparedStatement pstm=null;
			//链接数据库
			conn = DBUtils.getConnection();
			//编写SQL语句
			String sql="delete from paystatus where reqId=?";
			//获得执行SQL语句对象
			try {
				pstm=conn.prepareStatement(sql);
				//给占位符赋值
				pstm.setInt(1, reqId);
				//执行SQL语句，并返回结果
				int i = pstm.executeUpdate();
				return i;
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally {
				//关闭连接，释放结果（正序创建，逆序销毁）
				try {
					pstm.close();
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		
			return 0;
			
		}
	
//	 /**
//		 *单查询:由登录账号获取所有融资申请信息
//		 */
//		public List<FinanceReq> selectByEntNo(String entNo) {
//			
//	        //定义相关对象
//			Connection conn = null;
//			PreparedStatement pstm=null;
//			ResultSet rs = null;
//			//链接数据库
//			conn = DBUtils.getConnection();
//			//编写SQL语句
//			String sql="select * from financereq where entNo = ?";
//			//获得执行SQL语句对象
//			try {
//				pstm=conn.prepareStatement(sql);
//				//给占位符赋值
//				pstm.setString(1, entNo);
//				//执行SQL语句，并返回结果
//				rs=pstm.executeQuery();
//				List<FinanceReq> lf = new ArrayList<FinanceReq>();
//				while(rs.next()) {
//					FinanceReq financeReq = new FinanceReq(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getBigDecimal(7),rs.getString(8), rs.getString(9),rs.getString(10),rs.getDate(11),rs.getInt(12),rs.getString(13));
//					lf.add(financeReq);
//				}
//				return lf;
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} finally {
//				//关闭连接，释放结果（正序创建，逆序销毁）
//				try {
//					rs.close();
//					pstm.close();
//					conn.close();
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//			}
//			return null;
//			
//		}
//		
//		/**
//		 *单查询:根据审批状态查询所有处于当前状态的请求
//		 */
//		public List<FinanceReq> selectByReqStatus(int reqStatus) {
//			
//	        //定义相关对象
//			Connection conn = null;
//			PreparedStatement pstm=null;
//			ResultSet rs = null;
//			//链接数据库
//			conn = DBUtils.getConnection();
//			//编写SQL语句
//			String sql="select * from financereq where reqStatus = ?";
//			//获得执行SQL语句对象
//			try {
//				pstm=conn.prepareStatement(sql);
//				//给占位符赋值
//				pstm.setInt(1, reqStatus);
//				//执行SQL语句，并返回结果
//				rs=pstm.executeQuery();
//				List<FinanceReq> lf = new ArrayList<FinanceReq>();
//				while(rs.next()) {
//					FinanceReq financeReq = new FinanceReq(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getBigDecimal(7),rs.getString(8), rs.getString(9),rs.getString(10),rs.getDate(11),rs.getInt(12),rs.getString(13));
//					lf.add(financeReq);
//				}
//				return lf;
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} finally {
//				//关闭连接，释放结果（正序创建，逆序销毁）
//				try {
//					rs.close();
//					pstm.close();
//					conn.close();
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//			}
//			return null;
//			
//		}
//		
//		/**
//		 *单查询:由登录账号获取所有能够还款的融资申请信息
//		 */
//		public List<FinanceReq> selectAllowReturnByEntNo(String entNo) {
//			
//	        //定义相关对象
//			Connection conn = null;
//			PreparedStatement pstm=null;
//			ResultSet rs = null;
//			//链接数据库
//			conn = DBUtils.getConnection();
//			//编写SQL语句
//			String sql="select * from financereq where entNo = ? and reqStatus = '4'";
//			//获得执行SQL语句对象
//			try {
//				pstm=conn.prepareStatement(sql);
//				//给占位符赋值
//				pstm.setString(1, entNo);
//				//执行SQL语句，并返回结果
//				rs=pstm.executeQuery();
//				List<FinanceReq> lf = new ArrayList<FinanceReq>();
//				while(rs.next()) {
//					FinanceReq financeReq = new FinanceReq(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getBigDecimal(7),rs.getString(8), rs.getString(9),rs.getString(10),rs.getDate(11),rs.getInt(12),rs.getString(13));
//					lf.add(financeReq);
//				}
//				return lf;
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} finally {
//				//关闭连接，释放结果（正序创建，逆序销毁）
//				try {
//					rs.close();
//					pstm.close();
//					conn.close();
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//			}
//			return null;
//			
//		}
//	
//		/**
//		 *单查询:根据融资ID获取信息
//		 */
//		public FinanceReq selectByReqId(int reqId) {
//			
//	        //定义相关对象
//			Connection conn = null;
//			PreparedStatement pstm=null;
//			ResultSet rs = null;
//			//链接数据库
//			conn = DBUtils.getConnection();
//			//编写SQL语句
//			String sql="select * from financereq where reqId = ?";
//			//获得执行SQL语句对象
//			try {
//				pstm=conn.prepareStatement(sql);
//				//给占位符赋值
//				pstm.setInt(1, reqId);
//				//执行SQL语句，并返回结果
//				rs=pstm.executeQuery();
//				FinanceReq financeReq = null;
//				while(rs.next()) {
//					financeReq = new FinanceReq(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getBigDecimal(7),rs.getString(8), rs.getString(9),rs.getString(10),rs.getDate(11),rs.getInt(12),rs.getString(13));
//				}
//				return financeReq;
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} finally {
//				//关闭连接，释放结果（正序创建，逆序销毁）
//				try {
//					rs.close();
//					pstm.close();
//					conn.close();
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//			}
//			return null;
//			
//		}
		
	
// 
//     /**
//	 * 更改密码
//	 */
// public int changeEmpPassByENum(int eNum,String ePass) {
//		//定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="update emp set epass=? where empno=?";
//		//获得执行SQL语句对象
//		try {
//			pstm=conn.prepareStatement(sql);
//			//给占位符赋值
//			pstm.setString(1, ePass);
//			pstm.setInt(2, eNum);
//			//执行SQL语句，并返回结果
//			int i = pstm.executeUpdate();
//			return i;
//			
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} finally {
//			//关闭连接，释放结果（正序创建，逆序销毁）
//			try {
//				pstm.close();
//				conn.close();
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//	
//		return 0;
//		
//	}
// 
// /**
//  * 全查询
//  */
// public List<FinanceReq> selectFinanceReqList(){
//	 
//	    //定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		ResultSet rs = null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="select * from financereq";
//		//获得执行SQL语句对象
//		try {
//			pstm=conn.prepareStatement(sql);
//			//执行SQL语句，并返回结果
//			rs=pstm.executeQuery();
//			List<FinanceReq> list = new ArrayList<FinanceReq>();
//			while(rs.next()) {
//				FinanceReq financeReq = new FinanceReq(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getBigDecimal(7),rs.getString(8), rs.getString(9),rs.getString(10),rs.getDate(11),rs.getInt(12),rs.getString(13));
//				list.add(financeReq);
//			}
//			return list;
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//	 
//	return null;
//	
//	 
// }
//    
//    /**
//     * 使用ID修改相关请求状态
//     */
//    public int changeReqStatusById(int reqId,int reqStatus) {
//		//定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="update financereq set reqStatus=? where reqId=?";
//		//获得执行SQL语句对象 
//		try {
//			pstm=conn.prepareStatement(sql);
//			//给占位符赋值
//			pstm.setInt(1, reqStatus);
//			pstm.setInt(2, reqId);
//			//执行SQL语句，并返回结果
//			int i = pstm.executeUpdate();
//			return i;
//			
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} finally {
//			//关闭连接，释放结果（正序创建，逆序销毁）
//			try {
//				pstm.close();
//				conn.close();
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//	
//		return -1;
//		
//	}
//
//    /** 
//     * @param empName
//     * @param empSex
//     * @param empBirth
//     * @param empIdNum
//     * @return
//     */
//	public int changeEmpMsgByENum(int eNum, String eName, int eSex, Date eBirth, String eIdNum) {
//		//定义相关对象
//				Connection conn = null;
//				PreparedStatement pstm=null;
//				//链接数据库
//				conn = DBUtils.getConnection();
//				//编写SQL语句
//				String sql="update emp set ename=?,esex=?,ebirth=?,eidnum=? where empno=?";
//				//获得执行SQL语句对象 
//				try {
//					pstm=conn.prepareStatement(sql);
//					//给占位符赋值
//					pstm.setString(1, eName);
//					pstm.setInt(2, eSex);
//					pstm.setDate(3, eBirth);
//					pstm.setString(4, eIdNum);
//					pstm.setInt(5, eNum);
//					//执行SQL语句，并返回结果
//					int i = pstm.executeUpdate();
//					return i;
//					
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				} finally {
//					//关闭连接，释放结果（正序创建，逆序销毁）
//					try {
//						pstm.close();
//						conn.close();
//					} catch (SQLException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//				}
//			
//				return 0;
//	}
    
}
